/*
 * @Author: lzx
 * @Date: 2022-04-06 13:39:55
 * @LastEditors: lzx
 * @LastEditTime: 2022-04-06 14:51:34
 * @Description: Fuck Bug
 * @FilePath: \cs_talk_admin\src\utils\exportPDF.js
 */
/**
 * 封装导出PDF方法
 */
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export function exportPdf (dom, title) {
  html2Canvas(dom,{
      backgroundColor: "#ffffff", // 背景颜色
      dpi: 96, // 将分辨率提高到特定的dpi,默认值为96
      allowTaint: true, // 开启跨域
      useCORS: true, // 是否尝试使用CORS从服务器加载图像(跨域)
      scrollY: 0, // Y轴偏移
      scrollX: 0, // X轴偏移
      scale: 1, // 用于渲染的比例尺。默认为浏览器设备像素比率。默认值是1，手机端设置成2
    }).then((canvas) => {
    var contentWidth = canvas.width
    var contentHeight = canvas.height
    // 一页pdf显示html页面生成的canvas高度;
    var pageHeight = contentWidth
    // 未生成pdf的html页面高度
    var leftHeight = contentHeight
    // 页面偏移
    var position = 0
    // a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
    var imgWidth = 595.28
    var imgHeight = (592.28 / contentWidth) * contentHeight
    var pageData = canvas.toDataURL('image/jpeg', 1.0)
    var PDF = new JsPDF('', 'pt', 'a4')
    if (leftHeight < pageHeight) {
      PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)
    } else {
      while (leftHeight > 0) {
        PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
        leftHeight -= pageHeight
        position -= 841.89
        if (leftHeight > 0) {
          PDF.addPage()
        }
      }
    }
    PDF.save(title + '.pdf') // 这里是导出的文件名
  })
}